
package com.jxdinfo.hussar.activitidemo.utils;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;


public class UtilDateProcessor implements JsonValueProcessor {


    /** * /** * 字母 日期或时间元素 表示 示例
     * G Era 标志符 Text AD
     * y 年 Year 1996; 96
     * M 年中的月份 Month July; Jul; 07
     * w 年中的周数 Number 27
     * W 月份中的周数 Number 2
     * D 年中的天数 Number 189
     * d 月份中的天数 Number 10
     * F 月份中的星期 Number 2
     * E 星期中的天数 Text Tuesday; Tue
     * a Am/pm 标记 Text PM
     * H 一天中的小时数（0-23） Number 0
     * k 一天中的小时数（1-24） Number 24
     * K am/pm 中的小时数（0-11） Number 0
     * h am/pm 中的小时数（1-12） Number 12
     * m 小时中的分钟数 Number 30
     * s 分钟中的秒数 Number 55
     * S 毫秒数 Number 978
     * z 时区 General time zone Pacific Standard Time; PST; GMT-08:00
     * Z 时区 RFC 822 time zone -0800
     */
    private String format = "yyyy-MM-dd HH:mm:ss"; //自定义时间格式化的样式
    public UtilDateProcessor() {

        super();
    }
    public UtilDateProcessor(String format) {

        this.format = format;
    }
    public Object processArrayValue(Object arg0, JsonConfig arg1) {
        String[] obj = {};
        if (arg0 instanceof Date[]) {
            SimpleDateFormat sf = new SimpleDateFormat(format);
            Date[] dates = (Date[]) arg0;
            obj = new String[dates.length];
            for (int i = 0; i < dates.length; i++) {
                obj[i] = sf.format(dates[i]);
            }
        }return obj;
    }


    public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {
        return process(arg1);
    }
    private Object process(Object value) {
        try {if (value instanceof Date) {
            SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.UK);return sdf.format((Date) value);
        }
        return value == null ? "" : value.toString();
        } catch (Exception e) {
            return "";
        }


    }


    public String getFormat() {
        return format;
    }


    public void setFormat(String format) {
        this.format = format;
    }
}

